package com.xuecheng.api.content;

import com.xuecheng.api.content.model.dto.CourseBaseDTO;
import com.xuecheng.api.content.model.qo.QueryCourseBaseModel;
import com.xuecheng.api.content.model.vo.CourseBaseVO;
import com.xuecheng.common.domain.page.PageRequestParams;
import com.xuecheng.common.domain.page.PageVO;
import com.xuecheng.common.domain.response.RestResponse;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;

/**
 * <p></p>
 *
 * @Description:
 */
@Api(value = "内容管理API",description = "内容信息管理api接口",tags = "内容信息管理api接口")
public interface CourseBaseApi {

    /**
     * 分页条件查询课程基本信息
     * @param params
     * @param model
     * @return
     */
    @ApiOperation("分页条件查询课程基本信息")
    PageVO queryCourseBaseList(PageRequestParams params, QueryCourseBaseModel model);
    /*
            name：参数名
            value：参数的汉字说明、解释
            required：参数是否必须传
            paramType：参数放在哪个地方
            dataType：参数类型，默认String，其它值dataType="Integer"
            defaultValue：参数的默认值
         */

    @ApiOperation("课程信息查询")
    PageVO queryCourseList(PageRequestParams params, QueryCourseBaseModel model);
    /**
     *
     * @param vo
     * @return
     */
    @ApiOperation("课程基础信息新增")
    @ApiImplicitParam(name = "",value = "课程基本视图信息",required = true,
            dataType = "CourseBaseVO",paramType = "body")
    CourseBaseDTO createCourseBase(CourseBaseVO vo);



    @ApiOperation("根据id查询课程基础信息")
    CourseBaseDTO getById(Long courseId);

    @ApiOperation("修改课程基础信息")
    CourseBaseDTO modifyCourseBase(CourseBaseVO vo);

    @ApiOperation("删除课程基础信息")
    RestResponse deleteCourseBase(Long courseId);

    @ApiOperation("课程提交")
    void commitCourseBase(Long courseId);
}
